/*
宏任务和微任务:
    -异步代码有优先关系，分别为宏任务和微任务，微任务优先级高于宏任务，优先级高的先运行
    -宏任务是由宿主发起的：包括整体代码script settimeout setinterval等等
    -微任务是js自身发起的：promise.then/catch/fanally，promise.nexttick，queueMicrotask
    -浏览器事件轮询执行过程：
        -执行栈选择最先进入队列的宏任务（一般都是scrit），执行其同步代码直至结束
        -在执行同步代码的过程中，如果遇到宏任务，则把宏任务交给浏览器对应的模块（Dom管理，Ajax管理模块，当宏任务的回调需要被执行的时候，会把回调函数放入回调队列（callBack queue）中等待执行
        -如果遇到微任务，则直接把微任务的回调放入微任务队列中等待执行
        -当同步代码执行完成，先清空微任务队列，然后去宏任务队列中执行宏任务，每执行完一个宏任务都会再去清空微任务队列
*/ 



setTimeout(() => {
  var a = 1;
  console.log(a);  
},);